

using System;
using System.Collections.Generic;
using System.Text;
using DataAccessLayer;
using EntityLayer;
using DataLayer;
using System.Data;
using InfraStructureLayer;

namespace BusinessLayer
{
	public class busErrorMessages:BusinessBase
	{
		public busErrorMessages() : base()
		{
		}
		#region  Code Factory Generated Methods
	

        public DataTable SelectErrorMessages()
        {
            try
            {
                datErrorMessages insDatErrorMessages = new datErrorMessages();
                DbConnector insDbConnector = new DbConnector();
                return insDatErrorMessages.SelectErrorMessages(insDbConnector);
            }
            catch (SFException ex)
            {
                this.ErrorMessage = ex.Message;
            }
            return null;
        }
        public void SelectErrorMessagesByErrorMessageId(entErrorMessages parEntErrorMessages)
        {
            try
            {
                datErrorMessages insDatErrorMessages = new datErrorMessages();
                DbConnector insDbConnector = new DbConnector();
                insDatErrorMessages.SelectErrorMessagesByErrorMessageId(parEntErrorMessages, insDbConnector);
            }
            catch (SFException ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
		
#endregion

        public void InsertErrorMessages(entErrorMessages parEntErrorMessages, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsInsert, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsUpdate, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsDelete)
        {
            DbConnector insDbConnector = new DbConnector();
            try
            {

                insDbConnector.BeginTransaction();
                datErrorMessages insDatErrorMessages = new datErrorMessages();
                insDatErrorMessages.InsertErrorMessages(parEntErrorMessages, insDbConnector);

                datErrorMessageMultilanguageSettings insDatErrorMessageMultilanguageSettings = new datErrorMessageMultilanguageSettings();
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsInsert)
                {
                    insEntErrorMessageMultilanguageSettings.ErrorMessageId = parEntErrorMessages.ErrorMessageId;
                    insDatErrorMessageMultilanguageSettings.InsertErrorMessageMultilanguageSettings(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsUpdate)
                {
                    insEntErrorMessageMultilanguageSettings.ErrorMessageId = parEntErrorMessages.ErrorMessageId;
                    insDatErrorMessageMultilanguageSettings.UpdateErrorMessageMultilanguageSettingsByErrorMessageMultilanguageSettingId(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsDelete)
                {
                    insDatErrorMessageMultilanguageSettings.DeleteErrorMessageMultilanguageSettingsByErrorMessageMultilanguageSettingId(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                insDbConnector.CommitTransaction();
            }
            catch (SFException ex)
            {
                insDbConnector.RollbackTransaction();
                this.ErrorMessage = ex.Message;
            }
            catch (Exception ex)
            {
                insDbConnector.RollbackTransaction();
                throw new SFUnHandledException(ex);
            }
        }
        public void UpdateErrorMessagesByErrorMessageId(entErrorMessages parEntErrorMessages, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsInsert, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsUpdate, List<entErrorMessageMultilanguageSettings> parEntErrorMessageMultilanguageSettingsDelete)
        {
            DbConnector insDbConnector = new DbConnector();
            try
            {

                insDbConnector.BeginTransaction();
                datErrorMessages insDatErrorMessages = new datErrorMessages();
                insDatErrorMessages.UpdateErrorMessagesByErrorMessageId(parEntErrorMessages, insDbConnector);

                datErrorMessageMultilanguageSettings insDatErrorMessageMultilanguageSettings = new datErrorMessageMultilanguageSettings();
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsInsert)
                {
                    insEntErrorMessageMultilanguageSettings.ErrorMessageId = parEntErrorMessages.ErrorMessageId;
                    insDatErrorMessageMultilanguageSettings.InsertErrorMessageMultilanguageSettings(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsUpdate)
                {
                    insEntErrorMessageMultilanguageSettings.ErrorMessageId = parEntErrorMessages.ErrorMessageId;
                    insDatErrorMessageMultilanguageSettings.UpdateErrorMessageMultilanguageSettingsByErrorMessageMultilanguageSettingId(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                foreach (entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings in parEntErrorMessageMultilanguageSettingsDelete)
                {
                    insDatErrorMessageMultilanguageSettings.DeleteErrorMessageMultilanguageSettingsByErrorMessageMultilanguageSettingId(insEntErrorMessageMultilanguageSettings, insDbConnector);
                }
                insDbConnector.CommitTransaction();
            }
            catch (SFException ex)
            {
                insDbConnector.RollbackTransaction();
                this.ErrorMessage = ex.Message;
            }
            catch (Exception ex)
            {
                insDbConnector.RollbackTransaction();
                throw new SFUnHandledException(ex);
            }
        }
        public void DeleteErrorMessagesByErrorMessageId(entErrorMessages parEntErrorMessages)
        {
            DbConnector insDbConnector = new DbConnector();
            try
            {
                insDbConnector.BeginTransaction();

                datErrorMessageMultilanguageSettings insDatErrorMessageMultilanguageSettings = new datErrorMessageMultilanguageSettings();
                entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettingsMain = new entErrorMessageMultilanguageSettings();
                insEntErrorMessageMultilanguageSettingsMain.ErrorMessageId = parEntErrorMessages.ErrorMessageId;
                DataTable dt = insDatErrorMessageMultilanguageSettings.SelectErrorMessageMultilanguageSettingsByErrorMessageId(insEntErrorMessageMultilanguageSettingsMain, insDbConnector);
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr["ErrorMessageMultilanguageSettingId"] != DBNull.Value)
                    {
                        entErrorMessageMultilanguageSettings insEntErrorMessageMultilanguageSettings = new entErrorMessageMultilanguageSettings();
                        insEntErrorMessageMultilanguageSettings.ErrorMessageMultilanguageSettingId = Convert.ToInt32(dr["ErrorMessageMultilanguageSettingId"]);
                        insDatErrorMessageMultilanguageSettings.DeleteErrorMessageMultilanguageSettingsByErrorMessageMultilanguageSettingId(insEntErrorMessageMultilanguageSettings, insDbConnector);
                    }
                }

                datErrorMessages insDatErrorMessages = new datErrorMessages();
                insDatErrorMessages.DeleteErrorMessagesByErrorMessageId(parEntErrorMessages, insDbConnector);
                insDbConnector.CommitTransaction();
            }
            catch (SFException ex)
            {
                insDbConnector.RollbackTransaction();
                this.ErrorMessage = ex.Message;
            }
            catch (Exception ex)
            {
                throw new SFUnHandledException(ex);
                this.ErrorMessage = ex.Message;
            }
        }
	}
}